home *** CD-ROM | disk | FTP | other *** search
-
- section ax,code_c
- opt c-,d+,w-,o+
-
- include 'df1:insert/custom registers'
-
- badd=(320*256)/8
- akey=$bfec01
-
- move.w picdata+badd*5,c1
- move.w picdata+badd*5+2,c2
- move.w picdata+badd*5+4,c3
- move.w picdata+badd*5+6,c4
- move.w picdata+badd*5+8,c5
- move.w picdata+badd*5+10,c6
- move.w picdata+badd*5+12,c7
- move.w picdata+badd*5+14,c8
- move.w picdata+badd*5+16,c9
- move.w picdata+badd*5+18,c10
- move.w picdata+badd*5+20,c11
- move.w picdata+badd*5+22,c12
- move.w picdata+badd*5+24,c13
- move.w picdata+badd*5+26,c14
- move.w picdata+badd*5+28,c15
- move.w picdata+badd*5+30,c16
- move.w picdata+badd*5+32,c17
- move.w picdata+badd*5+34,c18
- move.w picdata+badd*5+36,c19
- move.w picdata+badd*5+38,c20
- move.w picdata+badd*5+40,c21
- move.w picdata+badd*5+42,c22
- move.w picdata+badd*5+44,c23
- move.w picdata+badd*5+46,c24
- move.w picdata+badd*5+48,c25
- move.w picdata+badd*5+50,c26
- move.w picdata+badd*5+52,c27
- move.w picdata+badd*5+54,c28
- move.w picdata+badd*5+56,c29
- move.w picdata+badd*5+58,c30
- move.w picdata+badd*5+60,c31
- move.w picdata+badd*5+62,c32
-
- lea $dff000,a6
- move.w #$87e0,$dff096
- move.l #-1,bltafwm(a6)
- jsr cop_init
- jsr bobsetup1
- jsr bobsetup
- jsr bobsetup5
- move.l $6c,oldirq
- move.l #newirq,$6c
- mse:
- cmp.b #$ff,$dff006
- bne mse
-
- zog:
- btst #6,$bfe001
- bne mse
- move.l oldirq,$6c
- move.l copaddr,a0
- move.l oldcop,(a0)
- nolib:
- rts
- newirq:
- movem.l d0-d7/a0-a6,$75000
- cmp.b #5,count
- bne huge
- jsr keyboard
- move.b #0,count
- huge:
- addi.b #1,count
- movem.l $75000,d0-d7/a0-a6
- dc.w $4ef9
-
- oldirq: dc.l 0
-
- even
-
- cop_init:
- lea screen,a0
- move.l a0,d0
- move.w d0,lo1
- swap d0
- move.w d0,hi1
- lea screen+badd,a0
- move.l a0,d0
- move.w d0,lo2
- swap d0
- move.w d0,hi2
- lea screen+badd*2,a0
- move.l a0,d0
- move.w d0,lo3
- swap d0
- move.w d0,hi3
- lea screen+badd*3,a0
- move.l a0,d0
- move.w d0,lo4
- swap d0
- move.w d0,hi4
- lea screen+badd*4,a0
- move.l a0,d0
- move.w d0,lo5
- swap d0
- move.w d0,hi5
- moveq #$00,d0
- lea grafname,a1
- move.l $4,a6
- jsr -132(A6)
- move.l $4,A6
- jsr -408(a6)
- tst d0
- beq nolib
- move.l d0,grafbase
- move.l d0,a6
- add.l #$32,d0
- move.l d0,a0
- move.l a0,copaddr
- move.l (a0),oldcop
- move.l #newcop,(a0)
- rts
-
- even
-
- grafname: dc.b "graphics.library",0
- grafbase: dc.l 0
- oldcop: dc.l 0
- copaddr: dc.l 0
- count: dc.b 0
- xpos: dc.b 0
- ypos: dc.b 0
- bval: dc.b 0
- counter1: dc.b 0
- xcount: dc.b 0
- yac: dc.b 0
-
-
- even
-
- newcop: dc.w $0100,$5200
- dc.w $0102
- boh: dc.w $0000
- dc.w $0180,$0000
- dc.w $0120
- sp1l: dc.w $0000,$0122
- sp1h: dc.w $0000
- dc.w $0124
- sp2l: dc.w $0000,$0126
- sp2h: dc.w $0000
- dc.w $0128
- sp3l: dc.w $0000,$012a
- sp3h: dc.w $0000
- dc.w $012c
- sp4l: dc.w $0000,$012e
- sp4h: dc.w $0000
- dc.w $0130
- sp5l: dc.w $0000,$132
- sp5h: dc.w $0000
- scr: dc.w $2001,$fffe
- dc.w $00e0
- hi1: dc.w $0000
- dc.w $00e2
- lo1: dc.w $0000
- dc.w $00e4
- hi2: dc.w $0000
- dc.w $00e6
- lo2: dc.w $0000
- dc.w $00e8
- hi3: dc.w $0000
- dc.w $00ea
- lo3: dc.w $0000
- dc.w $00ec
- hi4: dc.w $0000
- dc.w $00ee
- lo4: dc.w $0000
- dc.w $00f0
- hi5: dc.w $0000
- dc.w $00f2
- lo5: dc.w $0000
- dc.w $008e,$3021
- dc.w $0090,$30f1
- dc.w $180
- c1: dc.w $000,$182
- c2: dc.w $fff,$184
- c3: dc.w $fdb,$186
- c4: dc.w $db9
- dc.w $188
- c5: dc.w $c97,$18a
- c6: dc.w $a75,$18c
- c7: dc.w $853,$18e
- c8: dc.w $033,$190
- c9: dc.w $c60
- dc.w $192
- c10: dc.w $ba5,$194
- c11: dc.w $962,$196
- c12: dc.w $530,$198
- c13: dc.w $db4,$19a
- c14: dc.w $558
- dc.w $19c
- c15: dc.w $447,$19e
- c16: dc.w $336,$1a0
- c17: dc.w $a40,$1a2
- c18: dc.w $f44,$1a4
- c19: dc.w $b00
- dc.w $1a6
- c20: dc.w $222,$1a8
- c21: dc.w $333,$1aa
- c22: dc.w $444,$1ac
- c23: dc.w $555,$1ae
- c24: dc.w $666
- dc.w $1b0
- c25: dc.w $777,$1b2
- c26: dc.w $888,$1b4
- c27: dc.w $999,$1b6
- c28: dc.w $aaa,$1b8
- c29: dc.w $ccc
- dc.w $1ba
- c30: dc.w $ddd,$1bc
- c31: dc.w $eee,$1be
- c32: dc.w $fff
-
- dc.w $f201,$fffe
- dc.w $0180,$0fff
- dc.w $f301,$fffe
- dc.w $0180,$000a
- dc.w $ffff,$fffe
-
- even
-
- screen:
- ds.b 5*badd
-
- tempbob:
- ds.b 5*256
-
- picdata:
- incbin 'df1:graphics/game.blocks.raw'
-
- bobsetup:
- lea $dff000,a6
- move.l #-1,bltafwm(a6)
- move.w #$09f0,bltcon0(a6)
- clr.w bltcon1(a6)
- clr.w bltamod(a6)
- move.w #40-2,bltdmod(a6)
- move.w #40-2,bltamod(a6)
- af1: move.l #screen,bltdpt(a6)
- bf1: move.l #picdata,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- af2: move.l #screen+badd,bltdpt(a6)
- bf2: move.l #picdata+badd,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- af3: move.l #screen+badd*2,bltdpt(a6)
- bf3: move.l #picdata+badd*2,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- af4: move.l #screen+badd*3,bltdpt(a6)
- bf4: move.l #picdata+badd*3,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- af5: move.l #screen+badd*4,bltdpt(a6)
- bf5: move.l #picdata+badd*4,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- rts
-
- bobsetup1:
- lea $dff000,a6
- move.l #-1,bltafwm(a6)
- move.w #$09f0,bltcon0(a6)
- clr.w bltcon1(a6)
- clr.w bltamod(a6)
- move.w #40-2,bltdmod(a6)
- move.w #40-2,bltamod(a6)
- move.l #tempbob,bltdpt(a6)
- cf1: move.l #screen,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- move.l #tempbob+256,bltdpt(a6)
- cf2: move.l #screen+badd,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- move.l #tempbob+256*2,bltdpt(a6)
- cf3: move.l #screen+badd*2,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- move.l #tempbob+256*3,bltdpt(a6)
- cf4: move.l #screen+badd*3,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- move.l #tempbob+256*4,bltdpt(a6)
- cf5: move.l #screen+badd*4,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- rts
-
-
- bobsetup2:
- lea $dff000,a6
- move.l #-1,bltafwm(a6)
- move.w #$09f0,bltcon0(a6)
- clr.w bltcon1(a6)
- clr.w bltamod(a6)
- move.w #40-2,bltdmod(a6)
- move.w #40-2,bltamod(a6)
- df1: move.l #screen,bltdpt(a6)
- move.l #tempbob,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- df2: move.l #screen+badd,bltdpt(a6)
- move.l #tempbob+256,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- df3: move.l #screen+badd*2,bltdpt(a6)
- move.l #tempbob+256*2,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- df4: move.l #screen+badd*3,bltdpt(a6)
- move.l #tempbob+256*3,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- df5: move.l #screen+badd*4,bltdpt(a6)
- move.l #tempbob+256*4,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- rts
-
-
-
- bobsetup3:
- lea $dff000,a6
- move.l #-1,bltafwm(a6)
- move.w #$09f0,bltcon0(a6)
- clr.w bltcon1(a6)
- clr.w bltamod(a6)
- move.w #40-38,bltdmod(a6)
- move.w #40-38,bltamod(a6)
- move.l #screen,bltdpt(a6)
- move.l #screen+2,bltapt(a6)
- move.w #%0011000000010011,bltsize(a6)
- move.l #screen+badd,bltdpt(a6)
- move.l #screen+badd+2,bltapt(a6)
- move.w #%0011000000010011,bltsize(a6)
- move.l #screen+badd*2,bltdpt(a6)
- move.l #screen+badd*2+2,bltapt(a6)
- move.w #%0011000000010011,bltsize(a6)
- move.l #screen+badd*3,bltdpt(a6)
- move.l #screen+badd*3+2,bltapt(a6)
- move.w #%0011000000010011,bltsize(a6)
- move.l #screen+badd*4,bltdpt(a6)
- move.l #screen+badd*4+2,bltapt(a6)
- move.w #%0011000000010011,bltsize(a6)
- rts
-
-
- bobsetup4:
- lea $dff000,a6
- move.l #-1,bltafwm(a6)
- move.w #$09f0,bltcon0(a6)
- clr.w bltcon1(a6)
- clr.w bltamod(a6)
- move.w #40-38,bltdmod(a6)
- move.w #40-38,bltamod(a6)
- move.l #screen+2,bltdpt(a6)
- move.l #screen,bltapt(a6)
- move.w #%0011000000010011,bltsize(a6)
- move.l #screen+badd+2,bltdpt(a6)
- move.l #screen+badd,bltapt(a6)
- move.w #%0011000000010011,bltsize(a6)
- move.l #screen+badd*2+2,bltdpt(a6)
- move.l #screen+badd*2,bltapt(a6)
- move.w #%0011000000010011,bltsize(a6)
- move.l #screen+badd*3+2,bltdpt(a6)
- move.l #screen+badd*3,bltapt(a6)
- move.w #%0011000000010011,bltsize(a6)
- move.l #screen+badd*4+2,bltdpt(a6)
- move.l #screen+badd*4,bltapt(a6)
- move.w #%0011000000010011,bltsize(a6)
- rts
-
- bobsetup5:
- lea $dff000,a6
- move.l #-1,bltafwm(a6)
- move.w #$09f0,bltcon0(a6)
- clr.w bltcon1(a6)
- clr.w bltamod(a6)
- move.w #40-2,bltdmod(a6)
- move.w #40-2,bltamod(a6)
- move.l #screen+8000,bltdpt(a6)
- move.l bf1+2,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- move.l #screen+badd+8000,bltdpt(a6)
- move.l bf2+2,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- move.l #screen+badd*2+8000,bltdpt(a6)
- move.l bf3+2,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- move.l #screen+badd*3+8000,bltdpt(a6)
- move.l bf4+2,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- move.l #screen+badd*4+8000,bltdpt(a6)
- move.l bf5+2,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- rts
-
- bobsetup6:
- lea $dff000,a6
- move.l #-1,bltafwm(a6)
- move.w #$09f0,bltcon0(a6)
- clr.w bltcon1(a6)
- clr.w bltamod(a6)
- move.w #40-2,bltdmod(a6)
- move.w #40-2,bltamod(a6)
- move.l #screen+9000,bltdpt(a6)
- move.l #tempbob,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- move.l #screen+badd+9000,bltdpt(a6)
- move.l #tempbob+256,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- move.l #screen+badd*2+9000,bltdpt(a6)
- move.l #tempbob+256*2,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- move.l #screen+badd*3+9000,bltdpt(a6)
- move.l #tempbob+256*3,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- move.l #screen+badd*4+9000,bltdpt(a6)
- move.l #tempbob+256*4,bltapt(a6)
- move.w #%0000010000000001,bltsize(a6)
- rts
-
-
-
- keyboard:
- move.b akey,d0
- not d0
- ror.b d0
-
- cmpi.b #$4e,d0
- bne gru
- cmpi.b #18,xpos
- bne stah
- cmpi.b #199,xcount
- beq gru6
- jsr bobsetup2
- jsr bobsetup3
- jsr bobsetup1
- jsr bobsetup
- jmp gri1
- stah:
- addi.b #1,xpos
- jsr bobsetup2
- move.l af1+2,a5
- adda.l #2,a5
- move.l a5,af1+2
- move.l a5,df1+2
- move.l a5,cf1+2
- move.l af2+2,a5
- adda.l #2,a5
- move.l a5,af2+2
- move.l a5,df2+2
- move.l a5,cf2+2
- move.l af3+2,a5
- adda.l #2,a5
- move.l a5,af3+2
- move.l a5,df3+2
- move.l a5,cf3+2
- move.l af4+2,a5
- adda.l #2,a5
- move.l a5,af4+2
- move.l a5,df4+2
- move.l a5,cf4+2
- move.l af5+2,a5
- adda.l #2,a5
- move.l a5,af5+2
- move.l a5,df5+2
- move.l a5,cf5+2
- jsr bobsetup1
- jsr bobsetup
- jsr bobsetup6
- gri1: move.l neo+6,a2
- adda.l #1,a2
- move.l a2,neo+6
- addi.b #1,xcount
-
- gru:
- cmpi.b #$4f,d0
- bne gru1
- cmpi.b #0,xpos
- bne stah1
- cmpi.b #0,xcount
- beq gru6
- jsr bobsetup2
- jsr bobsetup4
- jsr bobsetup1
- jsr bobsetup
- jmp gri2
- stah1:
- subi.b #1,xpos
- jsr bobsetup2
- move.l af1+2,a5
- suba.l #2,a5
- move.l a5,af1+2
- move.l a5,df1+2
- move.l a5,cf1+2
- move.l af2+2,a5
- suba.l #2,a5
- move.l a5,af2+2
- move.l a5,df2+2
- move.l a5,cf2+2
- move.l af3+2,a5
- suba.l #2,a5
- move.l a5,af3+2
- move.l a5,df3+2
- move.l a5,cf3+2
- move.l af4+2,a5
- suba.l #2,a5
- move.l a5,af4+2
- move.l a5,cf4+2
- move.l a5,df4+2
- move.l af5+2,a5
- suba.l #2,a5
- move.l a5,af5+2
- move.l a5,cf5+2
- move.l a5,df5+2
- jsr bobsetup1
- jsr bobsetup
- jsr bobsetup6
- gri2: move.l neo+6,a2
- suba.l #1,a2
- subi.b #1,xcount
- move.l a2,neo+6
-
- gru1:
- cmpi.b #$4c,d0
- bne gru2
- cmpi.b #0,ypos
- beq gru6
- subi.b #1,ypos
- jsr bobsetup2
- move.l af1+2,a5
- suba.l #40*16,a5
- move.l a5,af1+2
- move.l a5,df1+2
- move.l a5,cf1+2
- move.l af2+2,a5
- suba.l #40*16,a5
- move.l a5,af2+2
- move.l a5,df2+2
- move.l a5,cf2+2
- move.l af3+2,a5
- suba.l #40*16,a5
- move.l a5,af3+2
- move.l a5,df3+2
- move.l a5,cf3+2
- move.l af4+2,a5
- suba.l #40*16,a5
- move.l a5,af4+2
- move.l a5,df4+2
- move.l a5,cf4+2
- move.l af5+2,a5
- suba.l #40*16,a5
- move.l a5,af5+2
- move.l a5,df5+2
- move.l a5,cf5+2
- jsr bobsetup1
- jsr bobsetup
- jsr bobsetup6
- move.l neo+6,a2
- suba.l #200,a2
- move.l a2,neo+6
-
- gru2:
- cmpi.b #$4d,d0
- bne gru3
- cmpi.b #11,ypos
- bne yepo
- jmp gru6
- yepo:
- addi.b #1,ypos
- jsr bobsetup2
- move.l af1+2,a5
- adda.l #16*40,a5
- move.l a5,af1+2
- move.l a5,df1+2
- move.l a5,cf1+2
- move.l af2+2,a5
- adda.l #16*40,a5
- move.l a5,af2+2
- move.l a5,df2+2
- move.l a5,cf2+2
- move.l af3+2,a5
- adda.l #16*40,a5
- move.l a5,af3+2
- move.l a5,df3+2
- move.l a5,cf3+2
- move.l af4+2,a5
- adda.l #16*40,a5
- move.l a5,af4+2
- move.l a5,df4+2
- move.l a5,cf4+2
- move.l af5+2,a5
- adda.l #16*40,a5
- move.l a5,af5+2
- move.l a5,df5+2
- move.l a5,cf5+2
- jsr bobsetup1
- jsr bobsetup
- jsr bobsetup6
- move.l neo+6,a2
- adda.l #200,a2
- move.l a2,neo+6
- gru3:
- cmpi.b #$0c,d0
- bne gru4
- addi.b #1,bval
- cmpi.b #19,counter1
- bne steg
- move.b #0,counter1
- jsr bobsetup2
- move.l bf1+2,a5
- adda.l #16*40,a5
- suba.l #38,a5
- move.l a5,bf1+2
- move.l bf2+2,a5
- adda.l #16*40,a5
- suba.l #38,a5
- move.l a5,bf2+2
- move.l bf3+2,a5
- adda.l #16*40,a5
- suba.l #38,a5
- move.l a5,bf3+2
- move.l bf4+2,a5
- adda.l #16*40,a5
- suba.l #38,a5
- move.l a5,bf4+2
- move.l bf5+2,a5
- adda.l #16*40,a5
- suba.l #38,a5
- move.l a5,bf5+2
- jsr bobsetup1
- jsr bobsetup
- jmp gru6
-
- steg:
- addi.b #1,counter1
- jsr bobsetup2
- move.l bf1+2,a5
- adda.l #2,a5
- move.l a5,bf1+2
- move.l bf2+2,a5
- adda.l #2,a5
- move.l a5,bf2+2
- move.l bf3+2,a5
- adda.l #2,a5
- move.l a5,bf3+2
- move.l bf4+2,a5
- adda.l #2,a5
- move.l a5,bf4+2
- move.l bf5+2,a5
- adda.l #2,a5
- move.l a5,bf5+2
- jsr bobsetup1
- jsr bobsetup
- jsr bobsetup5
-
- gru4:
- cmpi.b #$0b,d0
- bne gru5
- subi.b #1,bval
- cmpi.b #0,counter1
- bne sreg
- move.b #19,counter1
- jsr bobsetup2
- move.l bf1+2,a5
- suba.l #16*40,a5
- adda.l #38,a5
- move.l a5,bf1+2
- move.l bf2+2,a5
- suba.l #16*40,a5
- adda.l #38,a5
- move.l a5,bf2+2
- move.l bf3+2,a5
- suba.l #16*40,a5
- adda.l #38,a5
- move.l a5,bf3+2
- move.l bf4+2,a5
- suba.l #16*40,a5
- adda.l #38,a5
- move.l a5,bf4+2
- move.l bf5+2,a5
- suba.l #16*40,a5
- adda.l #38,a5
- move.l a5,bf5+2
- jsr bobsetup1
- jsr bobsetup
- jmp gru6
- sreg:
- subi.b #1,counter1
- jsr bobsetup2
- move.l bf1+2,a5
- suba.l #2,a5
- move.l a5,bf1+2
- move.l bf2+2,a5
- suba.l #2,a5
- move.l a5,bf2+2
- move.l bf3+2,a5
- suba.l #2,a5
- move.l a5,bf3+2
- move.l bf4+2,a5
- suba.l #2,a5
- move.l a5,bf4+2
- move.l bf5+2,a5
- suba.l #2,a5
- move.l a5,bf5+2
- jsr bobsetup1
- jsr bobsetup
- jsr bobsetup5
- gru5:
- cmpi.b #$40,d0
- bne gru6
- jsr bobsetup1
- neo: move.b bval,mapdata
- gru6:
-
- rts
-
- mapdata:
- ds.b 200*160
-